This rule applies whenever an IF
statement is followed by one or more ELSEIF
statements; the final ELSEIF
should be followed by an ELSE
statement.
The requirement for a final ELSE
statement is defensive programming.
The ELSE
statement should either take appropriate action or contain a suitable comment as to why no action is taken. This is
consistent with the requirement to have a final OTHER
clause in a SELECT
statement.
Noncompliant code example
C IF RESULT = 0
C ...
C ELSEIF RESULT > 0
C ...
C ENDIF
/free
if result = 0;
...
elseif result > 0;
...
endif;
/end-free
Compliant solution
C IF RESULT = 0
C ...
C ELSEIF RESULT > 0
C ...
C ELSE
C EXSR ERRO
C ENDIF
/free
if result = 0;
...
elseif result > 0;
...
else;
exsr ERR0;
endif;
/end-free